package com.hsnn.medstgmini.pro.plan.service.impl;

import java.sql.Timestamp;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.hsnn.medstgmini.pro.plan.dao.WsjPlanDao;
import com.hsnn.medstgmini.pro.plan.model.ProMethod;
import com.hsnn.medstgmini.pro.plan.model.ProjcetType;
import com.hsnn.medstgmini.pro.plan.service.WsjPlanManager;
import com.hsnn.medstgmini.util.DateUtil;
import com.hsnn.medstgmini.util.Pagination;

@Service("WsjPlanManager")
public class WsjPlanManagerImpl implements WsjPlanManager {
	@Autowired
	private WsjPlanDao wsjPlanDao;
	/**
	 * 
	 *@category 获取区域采购计划 项目列表
	 *@author wangbing
	 *@date 2015年6月12日 下午3:33:22
	 *@param page
	 *@return
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Pagination getWsjProjectList(Pagination page){
		List<Map<String,Object>> list = (List<Map<String, Object>>) wsjPlanDao.getWsjProjectList(page).getRows();
		for(Map<String,Object> map : list){
			map.put("startTime", DateUtil.date((Timestamp)map.get("startTime")));
			map.put("endTime", DateUtil.date((Timestamp)map.get("endTime")));
			map.put("projCat", map.get("projCat")==null?"":ProjcetType.getName(Integer.parseInt(map.get("projCat").toString())));
		}
		page.setRows(list);
		return page;
	}
	
	/**
	 * 
	 *@category  采购计划按地区汇总
	 *@author wangbing
	 *@date 2015年6月18日
	 *List<Object>
	 */
	@Override
	public Pagination getWsjPlanByAreaList(Pagination page){
		return wsjPlanDao.getWsjPlanByAreaList(page);
	}
	
	/**
	 * 
	 *@category  采购计划按地区汇总详情（根据id查询）
	 *@author wangbing
	 *@date 2015年6月18日
	 *List<Object>
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Pagination getWsjPlanDetailsByArea(Pagination page){
		List<Map<String,Object>> list = (List<Map<String, Object>>) wsjPlanDao.getWsjPlanDetailsByArea(page).getRows();
		for(Map<String,Object> map : list){
			map.put("proMethod", map.get("proMethod")==null?"":ProMethod.getName(Integer.parseInt(map.get("proMethod").toString())));
		}
		return page;
	}
	
	/**
	 * 
	 *@category 获取当前卫生局可申报采购计划列表
	 *@author wangbing
	 *@date 2015年6月12日 下午2:04:37
	 *@param page
	 *@return
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Pagination getWsjPlanProjectList(Pagination page){
		List<Map<String,Object>> list = (List<Map<String, Object>>) wsjPlanDao.getWsjPlanProjectList(page).getRows();
		for(Map<String,Object> map : list){
			map.put("starttime", DateUtil.date((Timestamp)map.get("starttime")));
			map.put("endtime", DateUtil.date((Timestamp)map.get("endtime")));
			map.put("projCat", map.get("projCat")==null?"":ProjcetType.getName(Integer.parseInt(map.get("projCat").toString())));
		}
		return page;
	}
	
	/**
	 * 
	 *@category 获取当前卫生局未申报药品列表
	 *@author wangbing
	 *@date 2015年6月12日 下午4:13:54
	 *@param page
	 *@return
	 */
	@Override
	public Pagination getNoDeclareDrugList(Pagination page){
		return wsjPlanDao.getNoDeclareDrugList(page);
	}
	
	/**
	 * 
	 *@category 获取当前卫生局已申报药品列表
	 *@author wangbing
	 *@date 2015年6月28日 
	 *@param page
	 *@return
	 */
	@SuppressWarnings("unchecked")
	@Override
	public Pagination getDeclareDrugList(Pagination page){
		List<Map<String,Object>> list = (List<Map<String, Object>>) wsjPlanDao.getDeclareDrugList(page).getRows();
		for(Map<String,Object> map : list){
			map.put("proMethod", map.get("proMethod")==null?"":ProMethod.getName(Integer.parseInt(map.get("proMethod").toString())));
		}
		return page;
	}
	
	/**
	 * 
	 *@category 删除申报药品
	 *@author wangbing
	 *@date 2015年6月28日 
	 *@param page
	 *@return
	 */
	@Override
	@Transactional
	public int deleteData(List<String> idList){
		return wsjPlanDao.deleteData(idList);
	}
	
	@Override
	@Transactional
	public int batchAddDrugData(List<Map<String,String>> list){
		return wsjPlanDao.batchAddDrugData(list);
	}
}
